home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
data
/
dora
/
doralgin.plp
< prev
next >
Wrap
Text File
|
1995-08-14
|
12KB
|
444 lines
/************************************************************************
* ログイン処理 *
*************************************************************************/
/* ダイヤル処理 (巡回時)*/
%callrd{[road,RoaD,Mch]
/*var Mch1[60];var Mch2[60];var Mch3[60];var Mch4[60];
Mch1:={X3/&F&S1%B11\N3/MP-1414F_14400m};
Mch2:={X4/&F&S1%B9\N3/MP-1414F_9600m};
Mch3:={X4/&F&S1&E4%B0\N3/MP-1414F_2400m};
Mch4:={};
case (Mch,{1},{MODEM:=Mch1},{2},{MODEM:=Mch2},{3},{MODEM:=Mch3}
,{4},{MODEM:=Mch4});*/
case (N1>=REDIAL,
{Yes},{im({RedialOver})},
{No},
{case (road,
{},{im({NoTelephone})},
{GENTEI},{im({GENTEI})},,
{display({\nCh}|Mch|{の}|road|{に}|N1+1|
{回目のアクセスします\n});
discon;type({ATZ\n});
wait(Wtime1,,{OK\n},);
dialone({AT}|@nth(MODEM,1,{/})|
@nth(MODEM,2,{/})|{D}|DIAL|@nth(RoaD,1,{/}),
{im({Connect});footnote(road|{に接続して居ます})},
{wait(1);im({Busy});display({\n只今使用中です\n})});
})
})
};
%Gcheck{[RDNo]
case (openT={} || closeT={},
{Yes},{im({GENTEI})},
{No},
{%nowhh @getchar(@daylong,16,2);
case (nowhh>=openT || nowhh<closeT,
{Yes}, {im(@head(RDNo,{/}))},
{No}, {im({GENTEI})}
);
});
};
%DIALING{
N1:=-1;
case(GEN,{Yes},{road1:=@Gcheck(ROAD)},{No},{road1:=@head(ROAD,{/})});
case(GEN2,{Yes},{road2:=@Gcheck(ROAD2)},{No},{road2:=@head(ROAD2,{/})});
case(GEN3,{Yes},{road3:=@Gcheck(ROAD3)},{No},{road3:=@head(ROAD3,{/})});
case(GEN4,{Yes},{road4:=@Gcheck(ROAD4)},{No},{road4:=@head(ROAD4,{/})});
display({アクセス回数が}|REDIAL|{回でも接続不可時はメニュー復帰可能});
loop ({N1:=N1+1;
case (@callrd(road1,ROAD,1),
{Connect},{sROAD:=ROAD;im({No})},
{RedialOver},
{display({\n}|REDIAL|{回かけてもつながりません\n});
N1:=-1;selM(REDIALt)},,
{case (@callrd(road2,ROAD2,2),
{Connect},{sROAD:=ROAD2;im({No})},,
{case (@callrd(road3,ROAD3,3),
{Connect},{sROAD:=ROAD3;im({No})},,
{case (@callrd(road4,ROAD4,4),
{Connect},
{sROAD:=ROAD4;im({No})},
,{im({Yes})}
);
});
});
});
});
};
%selM {[reDLTime]
select (
{確認して下さい。(オートリダイアルは「}|reDLTime|{秒後です」)},
Wtime4,{im({Yes})},
{CALLING AGIN},{wait(reDLTime);im({Yes})},
{MENUへ戻る},{display({MENUへ戻ります});RETCD:={Cancel};im({No})}
)
};
/* 電話接続 */
%callTEL{
display({\n}|NET|{-NETにアクセスします\n});
loop ({ dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|
{D}|DIAL|@nth(sROAD,1,{/}),
{footnote(NET|{-NETに接続開始});im({No})},
{display({\nだれかが使ってますよ\n});selM(REDIALt)});
})
};
/* 電話接続(単回線無限アクセス) */
%callLAST{
display({\n}|NET|{-NETにアクセスします\n});
loop ({ dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|
{D}|DIAL|@nth(sROAD,1,{/}),
{footnote(NET|{-NETに接続開始});im({No})},
{im({Yes})});
})
};
/* RS-232C クロス接続 */
%call232C{case (@tail(sROAD,{/}),
{1200},{baud(1200)},{2400},{baud(2400)},{4800},{baud(4800)},
{9600},{baud(9600)},{1440},{baud(19200)},{1920},{baud(19200)},
{3840},
{case (mopver={Win31},
{Yes},{baud(19200)},
{No},{
case (@filechk(CDIR2|{38400bps.com}),
{Yes},
{command({38400bps})},
{No}, {case (@filechk(CDIR2|{tw38400.exe}),
{Yes},{command({tw38400})},
{No},{baud(19200)
});
});
});
},
{},{baud(4800)});
case (@head(MODEM,{/}),
{RET},{type({\n})},{ESC},{type({})})};
/* 回線接続処理 */
%callNET{
case (@tail(MODEM,{00})={s},
{Yes},{call232C},
{No},
{
case(@getchar(@nth(MODEM,2,{_}),1,4),
{1200},{baud(1200)},{2400},{baud(2400)},
{4800},{baud(4800)},{9600},{baud(9600)},
{1440},{baud(19200)},{1920},{baud(19200)},
{3840},
{case (mopver={Win31},
{Yes},{baud(19200)},
{No},
{case (@filechk(CDIR2|{38400bps.com}),
{Yes},{command({38400bps})},
{No},
{case (@filechk(CDIR2|{tw38400.exe}),
{Yes},{command({tw38400})},
{No},{baud(19200)
});
});
});
},
{},{baud(4800)});
discon;
type({ATZ\n});
wait(Wtime1,,{OK\n},);
case (CALL,
{巡回},{DIALING},{固定},{callTEL},
{無限},{callLAST},,{固定}
)
})
};
/* オートパイロット開始処理 */
%Aisatu{var WtimeA [2];
case (loginMODE={lessTEL},
{No},{WtimeA:=10},{Yes},{WtimeA:=2});
loop ({
wait(WtimeA,{type({\n});im({Yes})}
,{\nNO CARRIER},
{AbortOff({\nホストの回線が切れちゃった~\n});im({No})}
,{システムがダウンしました},
{AbortOff({\nホストのシステムがダウンしちゃった~\n});im({No})}
,{ID を教えてねっ☆ >>},{type(ID|{\n});im({No})}
,{IDを入力してください},{type(ID|{\n});im({No})}
,{ID をどうぞ},{type(ID|{\n});im({No})}
,{ID =},{type(ID|{\n});im({No})}
,{ID =},{type(ID|{\n});im({No})}
,{にログインするなら},{type({gateway\n});im({Yes})});
});
case (ID={}||ID={GUEST},
{No},{
loop ({
wait (Wtime2,
{case (PassWord={*}||PassWord={},
{Yes},{SNDMSG({nyuryo_f.snd});
type(@input({パスワードを入力})
|{してください\n})},
{No},{type(PassWord|{\n})});
im({No})
}
,{ESCカラーが使える場合は},
{WaitMK;
case (ESCon={No},
{Yes},{type({N\n})},
{No},{type({Y\n})}
);
im({Yes})}
,{Password を教えて下さいね☆ >>},
{LimiT:={MMN};im({No})}
,{パスワードを入力してください},{im({No})}
,{パスワードを入力してください},{im({No})}
,{パスワードをどうぞ},{im({No})}
,{Password =},{im({No})});
});
case (PassWord={*}||PassWord={},
{Yes},{SNDMSG({nyuryo_f.snd});
type(@input({パスワードを入力}|
{してください})|{\n})},
{No},{type(PassWord|{\n})});
},
{Yes},{
wait (5,,
{選択},{type({Y\n})},
{[Y]},{type({Y\n})}
);
wait (5,,
{[Y]},{type({Y\n})},
{ハンドルネームは?},{type(HanDLe|{\n})});
wait (5,,
{[Y]},{type({Y\n})},
{選択して},{type({1\n})});
})
};
%PREset {
loop ({
wait (Wtime2,{type({\n});im({No})}
,{1,2,3},{type({3\n});im({Yes})}
,{[N]},{type({Y\n});im({Yes})}
,{連続表示},{type({\n});im({Yes})}
,{リターンキーを押して},{type({\n});im({No})}
)
})
};
%AUTOLOGIN{
display({\n}|NET|{-NETへの接続を開始します\n});
footnote(NET|{-NETへの接続処理をしています});
case (sROAD={}||ID={},
{Yes},{SNDMSG({okasi_f.snd});
display({電話番号かユーザーIDが指定されていません});
case (sROAD={},
{Yes},{RETCD:={Cancel};
footnote({電話番号を指定して下さい});wait(3)
},
{No},{SNDMSG({erande_f.snd});
select ({IDを「GUEST」に設定を},
Wtime4,,
{ す る },
{ID:={GUEST};callNET},
{ しない },
{RETCD:={Cancel};footnote({IDを入力}|
{して下さい});wait(3)}
);
}
);
},
{No},{callNET}
)
};
/** 伝言板処理 & ボード書き込み表示 **/
case(@filechk(UP|{\DENGO}),
{Yes},{display({\n伝言板への書き込みを実行します。\n})},
{No},{display({\n伝言板には書かないよ~ん。\n})});
case(@filechk(UP2|{doraup.ctl})||@filechk(UP2|{_mopupld.ctl}),
{Yes},{display({\nボードへの書き込みを実行します。\n})},
{No},{display({\n時にはROMだけの事も有るさ!\n})});
case (mopver={Win31},
{Yes},{display({\n通信プロトコルは}|BINty|{です\n})},
{No},{display({\n通信プロトコルは}|TBINty|{です\n})}
);
/************************************************************************/
/*RT-BBSの限定許可時間帯付チャンネルに対して自動実行開始する */
/************************************************************************/
%WAITGENNTEI{
case(openT={} || closeT={},
{Yes},{
SNDMSG({okasi_f.snd});footnote({開閉局時間が未設定です});
wait(5);RETCD:={Cancel}
},
{No},{
footnote(openT|{ - }|closeT|{の間に自動通信を開始します。});
wait(3);
%nowhh @getchar(@daylong,16,2);
case (nowhh>=openT || nowhh<closeT,
{Yes}, {RETCD:={Start}},
{No}, {WAITS(openT|{:05})}
);
});
};
%WAITSETTIME{
%access ACCESS;
footnote({通信開始時刻を設定してください});
loop ({
%a @plane(
{c通信開始時刻を指定してください [HH:MM]\n}|
{c 現在時刻は }|@getchar(@daylong,16,5)|{ です\n}|
{t 設定時刻 /xxxxx\n}|
{s / 設定 / 取消 / 即時 \n},
);
%access @head(@getline(a,1,1),{\n});
%ok @head(@getline(a,2,1),{\n});
case (ok,
{ 1},
{
case (@getchar(access,1,2)>=0 &&
@getchar(access,1,2)<=23 &&
@getchar(access,3,1)={:} &&
@getchar(access,4,2)>=00 &&
@getchar(access,4,2)<=59,
{Yes},{ACCESS:=access;WAITS(access);im({No})},
{No},{im({Yes})}
);
},
{ 2},
{RETCD:={Cancel};im({No})},
{ 3},
{RETCD:={Start};im({No})},
,{im({Yes})}
);
});
};
%WAITS {
[access]
var waits [6];
%hh @getchar(access,1,2);
%mm @getchar(access,4,2);
loop ({
%now @daylong;
%nowhh @getchar(now,16,2);
%nowmm @getchar(now,19,2);
%nowss @getchar(now,22,2);
waits:= ((hh*60+mm)*60) - ((nowhh*60+nowmm)*60+nowss);
case (waits<(-60),{Yes},{waits:=waits+24*60*60});
case (waits<0,{Yes},{waits:=1});
footnote(access|{に自動通信を開始します。}|
{ PF5:即時開始 PF10:通信メニューへ});
waitx (waits);
case (@xtype,
{-2}, /* 指定時刻 */
{SNDMSG({jikan_f.snd});RETCD:={Start};im({No})}, {105}, /* PF5 即時開始指定 */
{RETCD:={Start};im({No})},
{110}, /* PF10 通信メニューへ */
{RETCD:={Cancel};im({No})},
,{im({Yes})}
);
});
};
/******** 実行 ********/
var N1 [2];
var N2 [2];
var road1 [20];
var road2 [20];
var road3 [20];
var road4 [20];
case (sROAD={},
{Yes},{sROAD:=@im(ROAD)},
{No}, {
case (@getchar(sROAD,1,1)={/},
{Yes},{sROAD:=@im(ROAD)},
{No},{})
}
);
%CHECK3AM{
case (AM3,
{Yes}, {WAITGENNTEI},
{Detail}, {WAITSETTIME},
,{RETCD:={Start}}
)
};
case (@linechck,
{Yes},
{
SNDMSG({kaknin_f.snd});
footnote({回線接続中です。}|NET|{にログインし直しますか});
select ({回線接続中です。}|NET|{にログインし直しますか},
Wtime4,
{CHECK3AM},
{}|NET|{にログインした後、実行する},
{CHECK3AM},
{ログインし直さず、そのまま実行する},
{RETCD:={NoLOG}}
);
},
{No},{CHECK3AM}
);
case (mopver={Win31},
{Yes},
{case (BINty,
{Z-modem}
,{RecDir(LOG2|{BMAIL})});/*受信ディレクトリーの指定*/
});
case (RETCD,
{Cancel},{ },
{NoLOG},{RETCD:={Start}},
{Start},
{
case (loginMODE={lessTEL},
{No},{AUTOLOGIN});
case (RETCD,{Cancel},{ },
{Start},
{Aisatu;
loop ({
wait(5,{im({Yes})}
,{画面表示を選択},{PREset;im({Yes})}
,{[Y]/N},{type({\n});im({Yes})}
,{More},{type({\n});delfile(LOG2|{アクセスdat\ゾクセイ.DAT});
delfile(LOG2|{アクセスdat\ゾクセイoff.DAT});im({Yes})}
,{● 改行して下さい ●},{type({\n});im({Yes})}
,{NO CARRIER},
{AbortOff({\n回線状態が不調でしょうか?\n})}
,{システムがダウンしました},
{AbortOff({\nホストのシステムがダウンしちゃった~\n})}
,{お知らせはありません},{im({Yes})}
,{入力してねっ☆},{im({No})}
,{\n= MAIN =},{im({No})}
,{\n[36m= MAIN =},{im({No})}
,{\n[36mMAIN},{im({No})}
,{\nMAIN},{im({No})}
,{メイン},{im({No})}
,{メイン},{im({No})}
,{?,@,O},{im({No})},{,?,O},{im({No})}
,{新しく届いたメールが},{
loop ({
wait({3},{im({Yes})},
{読みますか},{type({N\n});im({No})},
{0:中止},{type({0\n});im({No})},
{入力してねっ☆},{im({No})},
{?,@,O},{im({No})},
{,?,O},{im({No})},
{quit},{type({0\n});im({No})})
});im({No})
}
,{新しく届いたテキストメールはありません},
{im({Yes})},
,{新しく届いたバイナリメールはありません},
{im({No})},
,{新しく届いたバイナリメールが},{
setcdir(CDIR);
footnote({バイナリメールを読み込みます});
DIGtype;im({No})
}
,{システムからのお知らせが},
{ DOWNSTART;
loop ({
wait({3},{im({Yes})},
{検索終了},{im({No})},
{メッセージは以上です},{im({No})})
});
DOWNSTOP;im({No})
});
});
});
});